#ifndef DW_GRAFFITI_COLOR_INL
#	define DW_GRAFFITI_COLOR_INL

namespace dw {
	namespace graffiti {

template< typename T >
Color<T>::Color(const Color< T >& ref)
:	r(ref.r)
,	g(ref.g)
,	b(ref.b)
,	a(ref.a)
{
}

template< typename T >
Color<T>::Color(const T& pR /*= 0*/, const T& pG /*= 0*/, const T& pB /*= 0*/, const T& pA /*= 1*/)
:	r(pR)
,	g(pG)
,	b(pB)
,	a(pA)
{
}

const Color< dw::float32 > Color< dw::float32 >::Black(0.0f, 0.0f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Blue(0.0f, 0.0f, 1.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Brown(0.73f, 0.55f, 0.27f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Cyan(0.0f, 1.0f, 1.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Gold(1.0f, 0.84f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Grey(0.5f, 0.5f, 0.5f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Green(0.0f, 1.0f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Magenta(1.0f, 0.0f, 1.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Orange(1.0f, 0.65f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Pink(1.0f, 0.75f, 0.8f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Purple(0.5f, 0.0f, 0.5f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Red(1.0f, 0.0f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::White(1.0f, 1.0f, 1.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::Yellow(1.0f, 1.0f, 0.0f, 1.0f);
const Color< dw::float32 > Color< dw::float32 >::LightBlue(0.4f, 0.8f, 0.88f, 1.0f);

	} // namespace graffiti
} // namespace dw

#endif // !DW_GRAFFITI_COLOR_INL
